package com.xmtlxx.tms.domain.vo;

import com.xmtlxx.common.annotation.ExcelDictFormat;
import com.xmtlxx.common.convert.ExcelDictConvert;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.xmtlxx.system.domain.SysOss;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;


/**
 * 车辆视图对象 t_car
 *
 * @author xmtlxx
 * @date 2022-08-15
 */
@Data
@ApiModel("车辆视图对象")
@ExcelIgnoreUnannotated
public class CarVo {

    private static final long serialVersionUID = 1L;

    /**
     * 车辆ID
     */
    @ExcelProperty(value = "车辆ID")
    @ApiModelProperty("车辆ID")
    private String id;

    /**
     * 承运商ID
     */
    @ExcelProperty(value = "承运商ID")
    @ApiModelProperty("承运商ID")
    private String carrierId;

    /**
     * 车牌号
     */
    @ExcelProperty(value = "车牌号")
    @ApiModelProperty("车牌号")
    private String carNumber;

    /**
     * 车辆类型
     */
    @ExcelProperty(value = "车辆类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "tms_car_type")
    @ApiModelProperty("车辆类型")
    private String carType;

    /**
     * 车牌颜色
     */
    @ExcelProperty(value = "车牌颜色", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "tms_plate_color")
    @ApiModelProperty("车牌颜色")
    private String plateColor;

    /**
     * 合作类型（自有、外协、合同、临时）
     */
    @ExcelProperty(value = "合作类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "tms_car_cooperation_type")
    @ApiModelProperty("合作类型（自有、外协、合同、临时）")
    private String cooperation;

    /**
     * 所有人
     */
    @ExcelProperty(value = "所有人")
    @ApiModelProperty("所有人")
    private String ownerName;

    /**
     * 发证机关
     */
    @ExcelProperty(value = "发证机关")
    @ApiModelProperty("发证机关")
    private String licenseOrgan;

    /**
     * 车辆识别代号(VIN)
     */
    @ExcelProperty(value = "车辆识别代号(VIN)")
    @ApiModelProperty("车辆识别代号(VIN)")
    private String vin;

    /**
     * 发动机号码
     */
    @ExcelProperty(value = "发动机号码")
    @ApiModelProperty("发动机号码")
    private String engineNo;

    /**
     * 发证日期
     */
    @ExcelProperty(value = "发证日期")
    @ApiModelProperty("发证日期")
    private Date grantDate;

    /**
     * 总质量（kg）
     */
    @ExcelProperty(value = "总质量", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "k=g")
    @ApiModelProperty("总质量（kg）")
    private String totalMass;

    /**
     * 能源类型
     */
    @ExcelProperty(value = "能源类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "tms_energy_type")
    @ApiModelProperty("能源类型")
    private String energyType;

    /**
     * 核定载人数
     */
    @ExcelProperty(value = "核定载人数")
    @ApiModelProperty("核定载人数")
    private String passenger;

    /**
     * 核定载质量(kg)
     */
    @ExcelProperty(value = "核定载质量(kg)")
    @ApiModelProperty("核定载质量(kg)")
    private String tonnage;

    /**
     * 准牵引总质量(kg)
     */
    @ExcelProperty(value = "准牵引总质量(kg)")
    @ApiModelProperty("准牵引总质量(kg)")
    private String tractionMass;

    /**
     * 整备质量(kg)
     */
    @ExcelProperty(value = "整备质量(kg)")
    @ApiModelProperty("整备质量(kg)")
    private String unladenMass;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    @ApiModelProperty("备注")
    private String remark;

    /**
     * 车辆状态
     */
    @ExcelProperty(value = "车辆状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "tms_car_status")
    @ApiModelProperty("车辆状态")
    private String status;

    /**
     * 删除标志
     */
    @ExcelProperty(value = "删除标志", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_del_flag")
    @ApiModelProperty("删除标志")
    private String delFlag;

    /**
     * 所属机构id
     */
    @ExcelProperty(value = "所属机构id")
    @ApiModelProperty("所属机构id")
    private Long deptId;

    /**
     * 所属机构名称
     */
    @ExcelProperty(value = "所属机构名称")
    @ApiModelProperty("所属机构名称")
    private String deptName;

    /**
     * 使用性质
     */
    @ExcelProperty(value = "使用性质")
    @ApiModelProperty("使用性质")
    private String useCharacter;

    /**
     * 注册日期
     */
    @ExcelProperty(value = "注册日期")
    @ApiModelProperty("注册日期")
    private Date registerDate;

    /**
     * 行驶证正面
     */
    @ExcelProperty(value = "行驶证正面")
    @ApiModelProperty("行驶证正面")
    private String vehicleFrontImg;

    /**
     * 行驶证背面
     */
    @ExcelProperty(value = "行驶证背面")
    @ApiModelProperty("行驶证背面")
    private String vehicleBackImg;

    /**
     * 车辆照片
     */
    @ExcelProperty(value = "车辆照片")
    @ApiModelProperty("车辆照片")
    private String vehicleImg;

    /**
     * 档案编号
     */
    @ExcelProperty(value = "档案编号")
    @ApiModelProperty("档案编号")
    private String fileNo;

    /**
     * 创建人
     */
    @ExcelProperty(value = "创建人")
    @ApiModelProperty("创建人")
    private String createBy;

    /**
     * 更新人
     */
    @ExcelProperty(value = "更新人")
    @ApiModelProperty("更新人")
    private String updateBy;

    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    @ApiModelProperty("创建时间")
    private Date createTime;

    /**
     * 更新时间
     */
    @ExcelProperty(value = "更新时间")
    @ApiModelProperty("更新时间")
    private Date updateTime;

    private List<SysOss> oss;

    private String carrierName;

    /**
     * 是否展示承运商筛选
     */
    private Boolean isShow;
}
